﻿#pragma once

#include "BaseGlobal.h"

#include <QMap>
#include <QWidget>
#include <QSettings>

BASE_EXPORT extern QSettings * gSettingConfig;
BASE_EXPORT extern QMap<QString, QVariant> gMapConfigs;
BASE_EXPORT void initApplication();

//==================================================================================================
//配置文件读取
BASE_EXPORT QSettings * getConfig();
BASE_EXPORT void readConfig(QSettings & config);
BASE_EXPORT void saveConfig(QSettings & config);

//==================================================================================================
//程序目录读取	
BASE_EXPORT QString dirExpand(const char * path);
BASE_EXPORT QString dirExpand(const QString & path);
BASE_EXPORT QStringList dirExpand(const QStringList & pathList);


//==================================================================================================
//加载资源
BASE_EXPORT void regResource(const QString & Path, const QString & Root);


//==================================================================================================
//加载翻译、设置皮肤
BASE_EXPORT void addTranslator(const QString & Name);
BASE_EXPORT void setSkinStyles(const QString & Name);


//==================================================================================================
//获取配置文件中组下配置
BASE_EXPORT QMap<QString, QStringList> getSeetingGroup(const QString & GroupName, const QString & FilePath = "");


//==================================================================================================
struct BASE_EXPORT QSignalsBlocker
{
	QSignalsBlocker(QObject * object);
	~QSignalsBlocker(void);

	QObject * sender;
};

//==================================================================================================
struct BASE_EXPORT QWaitCursor
{
	QWaitCursor(QWidget * widget);
	~QWaitCursor(void);

	QWidget * widget;
};

//==================================================================================================